Technical Field
This disclosure relates generally to storing data on a physical recording medium, and more specifically to storing data atomically.
Description of the Related Art
In some instances, the writing of data to a storage device can be interrupted such that the data is not completely written to the storage device successfully. This type of failure may occur responsive to, for example, a loss of power to the storage device, a mechanical failure of the storage device, an operating system crash, a severed connection coupling the storage device to a computer system, a loss of network connectivity to a network attached storage (NAS) or storage area network (SAN), etc.
Various attempts have been made to address a storage failure. For example, some storage devices use battery-backed caches to store data while being written to a storage device. In the event of a power failure, the cached data can be used to complete the write once power is restored. As another example, some file systems maintain a journal to track changes made to a storage device. In the event of a failure, the journal can be reviewed to restore the drive to a previously valid state. Examples of such file systems includes the new technology file system (NTFS), the journaled file system (JFS), the third extended file system (ext3), etc. Some applications (such as distributed applications in cloud computing environments) may maintain data until it can be verified that the data has been successfully committed to storage.